package com.example.netty.encode.serializer;

/**
 * @author liupk
 * @date 2018/10/24
 */
public interface Serializer {
    /**
     * json 序列化
     */
    byte JSON_SERIALIZER = 1;
    
    Serializer DEFAULT = new JSONSerializer();
    
    /**
     * 序列化算法
     * @date 2018/10/24
     * @param
     * @return
     */
    byte getSerializerAlgorithm();
    
    
    /**
     * 编码
     * @date 2018/10/24
     * @param
     * @return
     */
    byte[] serialize(Object object);
    
    /**
     * 反编码
     * @date 2018/10/24
     * @param
     * @return
     */
    <T> T deserialize(Class<T> clazz,byte[] bytes);
}